home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 May: Tool Chest / Developer CD Series Tool Chest (Apple Computer)(May 1999).iso / Tool Chest / Games / Game Sample Code / ZAM 1.0a13 / GameSource / SpriteLayer.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-09-16  |  1.2 KB  |  54 lines  |  [TEXT/KAHL]

  1. #include "sprite.h"
  2.  
  3. #include "SpriteLayer.proto.h"
  4.  
  5. typedef struct spriteLayer {
  6.     struct spriteLayer    *next;        // the layer in back of this one
  7.     struct spriteLayer    *prev;        // the layer in front of this one
  8.     spritePtr    *sprites;            // the sprites in this layer
  9.     GWorldPtr    tween;                // the work GWorld for this layer
  10.     GWorldPtr    backdrop;            // the background for this layer
  11.     WindowPtr    window;                // the window this layer ends up in
  12.     long        layerFlags;
  13.     long        layerID;
  14.     long        layerRefcon;
  15. } spriteLayer, *spriteLayerPtr;
  16.  
  17.  
  18. static spriteLayerPtr    MasterSpriteHead;
  19. static spriteLayerPtr    MasterSpriteTail;
  20.  
  21. OSErr    CreateSpriteLayer(spriteLayerPtr *retSprite, 
  22.                             GWorldPtr tween, 
  23.                             GWorldPtr backdrop, 
  24.                             WindowPtr spriteWin)
  25. {
  26.  
  27.     OSErr            err;
  28.     spriteLayerPtr    sl;
  29.     
  30.     sl = (spriteLayerPtr)NewPtrClear(sizeof(spriteLayer));
  31.     if(!sl) {
  32.         err = MemError();
  33.         ErrMsgCode("\pCreateSpriteLayer NewPtrClear failed.",err);
  34.     }
  35.     
  36.     if(err == noErr) {
  37.         sl->tween = tween;
  38.         sl->backdrop = backdrop;
  39.         sl->window = spriteWin;
  40.     }
  41.  
  42.     if(MasterSpriteTail) {
  43.         sl->prev = MasterSpriteTail;
  44.         MasterSpriteTail->next = sl;
  45.         MasterSpriteTail = sl;
  46.     } else {
  47.         MasterSpriteHead = MasterSpriteTail = sl;
  48.     }
  49.  
  50.     *retSprite = sl;
  51.     
  52.     return err;
  53.     
  54. }